package com.atguigu.gmall.product.mapper;

import com.atguigu.gmall.product.dto.ValueSkuJsonDTO;
import com.atguigu.gmall.product.entity.SpuSaleAttr;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * @author 李天玉
 * @description 针对表【spu_sale_attr(spu销售属性)】的数据库操作Mapper
 * @createDate 2025-08-15 14:26:51
 * @Entity com.atguigu.gmall.product.entity.SpuSaleAttr
 */
public interface SpuSaleAttrMapper extends BaseMapper<SpuSaleAttr> {

    /**
     * 查询指定spuId的spu销售属性列表
     *
     * @param spuId
     * @return
     */
    List<SpuSaleAttr> getSpuSaleAttrList(@Param("spuId") Long spuId);

    /**
     * 根据spu_id，查询这个spu下面的所有sku涉及到的所有销售属性值组合，
     * 返回：Map（"127|128":49，"126|129"：50）的json字符串
     * @param spuId
     * @return
     */
    List<ValueSkuJsonDTO> getSpuValuesSkuJson(@Param("spuId") Long spuId);

    /**
     * 查询指定sku对应的spu定义的所有销售属性名和值，并标记出当前sku是那一组销售属性，并固定顺序
     * @param skuId
     * @param spuId
     * @return
     */
    List<SpuSaleAttr> getSpuSaleAttrAndValueAndMarkCurrentSku(@Param("skuId") Long skuId, @Param("spuId") Long spuId);
}




